#define  _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
using namespace std;

#include"BSTree.h"

void test1()
{
	int arr[] = { 8,7,6,9,3,0,2,1,4,5 };
	BSTree<int> t;
	for (auto e : arr)
	{
		t.Insert(e);
	}
	t.InOrder();

	t.erase(6);
	t.InOrder();

	t.erase(4);
	t.InOrder();

	t.erase(0);
	t.InOrder();

	for (auto e : arr)
	{
		t.erase(e);
	}
	t.InOrder();
}

void test2()
{
	int arr[] = { 8,7,6,9,3,0,2,1,4,5 };
	BSTree<int> t;
	for (auto e : arr)
	{
		t.InsertR(e);
	}
	t.InOrder();

	cout << t.FindR(9) << endl;
	cout << t.FindR(11) << endl;

	cout << t.FindR(9) << endl;
	cout << t.FindR(11) << endl;

	t.eraseR(6);
	t.InOrder();

	t.eraseR(4);
	t.InOrder();

	t.eraseR(0);
	t.InOrder();

	for (auto e : arr)
	{
		t.eraseR(e);
	}
	t.InOrder();
}

void test3()
{
	int arr[] = { 1,2,55,11,22,7,9,55,0,8,6,4,3 };
	BSTree<int> t;
	for (auto e : arr)
	{
		t.Insert(e);
	}
	t.InOrder();

	t.eraseR(4);
	t.InOrder();

	t.eraseR(1);
	t.InOrder();

	BSTree<int> t1(t);
	BSTree<int> t2(t);
	t1.InOrder();

	t2 = t;
	t2.InOrder();
}

int main()
{
	test3();
	return 0;
}